package Interfaz;

import java.util.List;

import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Monitor;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Button;

import Persistencia.DAO.DAOCompetencia;
import Persistencia.Entidad.Competencia;
import Persistencia.Entidad.Participante;


/**
 * CU008 - Listar participantes de competencia
 * @author 
 */
public class CU008 {

	protected Shell shlParticipantes;
	private Table table;
	
	private int idCompetencia;
	
	private CU020 pantallaAnterior;
	private CU008 myself;
	
	public CU008(int idCompetencia, CU020 pantallaAnterior) {
		this.idCompetencia = idCompetencia;
		this.pantallaAnterior = pantallaAnterior;
		myself = this;
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		
		// Centrar ventana
		Monitor primary = display.getPrimaryMonitor();
		Rectangle bounds = primary.getBounds();
		Rectangle rect = shlParticipantes.getBounds();	    
		int x = bounds.x + (bounds.width - rect.width) / 2;
		int y = bounds.y + (bounds.height - rect.height) / 2;	    
		shlParticipantes.setLocation(x, y);
		
		Button btnSalir = new Button(shlParticipantes, SWT.NONE);
		btnSalir.setText("Salir");
		btnSalir.setBounds(445, 195, 108, 32);
		btnSalir.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				shlParticipantes.close();
			}
		});
		
		Button btnEditar = new Button(shlParticipantes, SWT.NONE);
		btnEditar.setText("Editar");
		btnEditar.setBounds(445, 68, 108, 32);
		
		Button btnEliminar = new Button(shlParticipantes, SWT.NONE);
		btnEliminar.setText("Eliminar");
		btnEliminar.setBounds(445, 120, 108, 32);
		
		shlParticipantes.open();
		shlParticipantes.layout();
		while (!shlParticipantes.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shlParticipantes = new Shell(SWT.CLOSE | SWT.TITLE | SWT.MIN);
		shlParticipantes.setSize(574, 274);
		shlParticipantes.setText("Participantes");
		shlParticipantes.addListener(SWT.Close, new Listener() {
			public void handleEvent(Event event) {
				pantallaAnterior.shlCompetencia.setVisible(true);
				pantallaAnterior.shlCompetencia.forceFocus();
			}
		});
		
		table = new Table(shlParticipantes, SWT.BORDER | SWT.FULL_SELECTION);
		table.setBounds(10, 15, 414, 217);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		
		TableColumn tblclmnNombreParticipanteequipo = new TableColumn(table, SWT.NONE);
		tblclmnNombreParticipanteequipo.setWidth(205);
		tblclmnNombreParticipanteequipo.setText("Nombre participante/equipo");
		
		TableColumn tblclmnEmail = new TableColumn(table, SWT.NONE);
		tblclmnEmail.setWidth(205);
		tblclmnEmail.setText("Correo electr\u00F3nico");
		
		llenarTabla();
		
		Button btnNuevo = new Button(shlParticipantes, SWT.NONE);
		btnNuevo.setText("Nuevo");
		btnNuevo.setBounds(445, 15, 108, 32);
		btnNuevo.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				shlParticipantes.setVisible(false);
				
				try {
					CU009 nuevoParticipante = new CU009(idCompetencia, myself);
					nuevoParticipante.open();
				}
				catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		});

	}

	public void llenarTabla() {
		table.removeAll();
		
		DAOCompetencia daoCompetencia = new DAOCompetencia();
		Competencia competencia = daoCompetencia.getCompetencia(idCompetencia);
		
		List<Participante> participantes = competencia.getParticipantes();
		for (Participante p : participantes) {
			TableItem tableItem = new TableItem(table, SWT.NONE);
			tableItem.setText(new String[] {p.getNombre(), p.getDireccionEmail()});
		}
	}
}
